;--------------------------------------
;
; tab6.inc
;
; includes:
;
;  proto6s.inc -+   (Small model)
;      or       |-> proc prototypes
;  proto6l.inc -+   (Large model)
;
;  def6.inc      -> all procedure 
;                   defines
;
;  mac6.inc      -> all macros required
;                   by procedures


;--------------------------------------
;
; select memory model
;

IF mdl EQ 3
   .MODEL Large,Pascal
ELSE
   .MODEL Small,Pascal
ENDIF  

;--------------------------------------
;
; include defines
;

include def6.inc

;--------------------------------------
;
; include extern defs

include global6.inc

;--------------------------------------
;
; include macros
;

include  mac6.inc

;--------------------------------------
;
; include procedure prototypes
;

IF mdl eq 3                            ; if Large model
   include proto6l.inc            ; include Large model prototypes
ELSE                                   ; otherwise
   include proto6s.inc            ; include Small model prototypes
ENDIF

;--------------------------------------
;
; structure definitions
;

;----------------------------------------------------------
WINDOW     STRUCT  2         ; align structure on WORD
   ur      db      ?         ; upper left row
   uc      db      ?         ; upper left column
   lr      db      ?         ; lower right row
   lc      db      ?         ; lower right column
   style   db      ?         ; window border style
   t_spot  db      ?         ; title location spot
   w_name  db      80 DUP(0) ; 28 bytes for window name
   attr    db      ?         ; window attribute
   center  db      ?         ; title center offset
   w_img   dw      ?         ; segment of window image
   s_img   dw      ?         ; segment of screen image
WINDOW     ENDS
;----------------------------------------------------------

;----------------------------------------------------------
M_ITEM     STRUCT  2         ; align structure on WORD
   k_off   db      ?
   k_code  dw      ?
   i_name  db      40 DUP(0)
   i_off   db      ?         ; menu bar item offset
M_ITEM     ENDS
;----------------------------------------------------------

;----------------------------------------------------------
DROP_DOWN  STRUCT  2         ; align structure on WORD
   inum    db      ?         ; number of items
   ddwind  WINDOW  <>        ; window structure
   iattr   db      ?         ; item inverse attribute
   k_attr  db      ?         ; hot key attribute
   i_len   db      ?         ; inverse bar length
DROP_DOWN  ENDS
;----------------------------------------------------------

;----------------------------------------------------------
MENU_BAR  STRUCT  2         ; align structure on WORD
   inum    db      ?         ; number of items
   attr    db      ?         ; menu bar attribute
   iattr   db      ?         ; item inverse attribute
   k_attr  db      ?         ; hot key attribute
MENU_BAR  ENDS
;----------------------------------------------------------

;----------------------------------------------------------
;
; definitions

DDP     equ DROP_DOWN Ptr
MBP     equ MENU_BAR Ptr
MIP     equ M_ITEM Ptr
WIP     equ WINDOW Ptr
LM_ITEM equ SIZEOF M_ITEM
MI_OFF  equ 2  
